The present invention relates to data processing systems and more particularly to the transfer of information over a common input/output bus.
In systems having a plurality of devices coupled over a common channel or BUS some means must be provided by which an orderly transfer of information over such channel may be provided and the conflicts and the interferences rising in the use of such bus may be solved.
In general, the previously adopted solutions provide for a privileged device or MASTER, which may be a central unit, a control unit with such specific function, or the system working memory, having the task of controlling the channel use so as to solve the conflicts. To this end, a pre-established priority is assigned to each unit which asks to access the BUS. The MASTER detects periodically if BUS access requests are present and, in case of two or more contemporaneous requests, it assigns the BUS to the requesting unit having greater priority. Such solutions have the disadvantage of assigning the priorities in a rigid way and the risk exists that the unit with greater priority monopolizes the access to the BUS at disadvantage of the other units.
According to some prior art embodiments, such risk is avoided by assigning to the units a variable priority which is changed in accordance with the circumstances: in such case the MASTER assigns the relative priority among the various units according to the different needs. However, the MASTER is required to supervise the different operations made by the several units in order to know the real needs of such units. Therefore, such solutions are not suitable to solve the conflicts in a system where various units are coupled through a BUS and a plurality of intelligent autonomous units act together, as for instance in the Multiprocessor systems. In addition, in such a case, the priority network, which must handle the conflicts, must be particularly complex.
According to other prior art embodiments, each unit can send, in accordance with its needs, access requests at different priority levels using several signals on a plurality of leads. This requires the use of a great number of leads, as well as the use of a very complex priority network in the MASTER: practically, it is as if the MASTER had to handle as much apparent units as the real number of such units multiplied by the different types of requests which can be sent by each unit. Then, the handling problem of the access requests to BUS is further complicated by the intervention of other elements, such as: the synchronous and the asynchronous nature of the access requests and the synchronous or asynchronous operation of the MASTER.